package day0108;

import org.junit.Test;

public class OPPDemo {
	
	@Test
	public void test1() {
		
		// 类是引用数据类型，可以new对象
		// Student 是自定义的类   
		//student是变量  也叫对象
		// new出来的也叫Student对象；   
		Student student1 = new Student();
//		student1.id = 1;            通过对象. 调用里面的值
//		student1.age = 23;
//		student1.name = "wangwu";
//		student1.gender = "男";
		
		student1.setAge(25);
		student1.setGender("男");    // 因为类里设置成私有属性   所以要通过set方法给属性赋值
		student1.setId(1);
		student1.setName("张三");
		
		String name = student1.getName();      //通过调用get方法拿到类里的值
		//String name = student1.name;
		
		
//		System.out.println(student1.age);
//		System.out.println(student1.gender);   //通过对象.调用里面的值
//		System.out.println(student1.id);
//		System.out.println(student1.name);
		
		System.out.println(student1.getName());
		System.out.println(name);
		
		student1.study();            //方法的调用是----对象.方法名
		
		//同样一个Student类，可以new出多个对象
		Student student2 = new Student();
		student2.setAge(23);
		student2.setGender("男");    // 因为类里设置成私有属性   所以要通过set方法给属性赋值
		student2.setId(2);
		student2.setName("Lisi"); 	//方法的调用是----对象.方法名
		
	}
	
	@Test
	public void test2() {
		
		Student stu = new Student();
		stu.setId(2);        //通过对象. 调用里面的值
		stu.setAge(25);
		stu.setName("lisi");
		stu.setGender("男");
		stu.study();		//方法的调用是----对象.方法名
		
		String str = stu.getInfor();  // 调用getInfor()方法，返回字符串
		
		int age = stu.getAge();// ALT + Shift + L
		System.out.println(str);
		System.out.println(stu.getInfor());
		System.out.println(stu.toString());  
		//当生成toString()方法后，可以省略toString()，可以直接打印对象
		System.out.println(stu);
		
	}
	
	@Test
	public void test3() {
		Teacher teacher = new Teacher();
		teacher.setId(2);      //通过对象. 调用set方法 ，给私有的id赋值
		teacher.setAge(25);
		teacher.setName("zhangsan");
		teacher.setSalary(5000); 
		
		System.out.println(teacher.getAge());
		System.out.println(teacher.getId());   // 通过对象.调用get方法，拿到赋值后的id
		System.out.println(teacher.getName());
		System.out.println(teacher.getSalary());
	}
	
	@Test
	public void test4() {
		Student stu = new Student();   //打印Student.Student()   
		
		
		// new 有参构造方法时，直接传输数据
		Student stu2 = new Student(2,"zhangsan",23,"男");
		System.out.println(stu2);
	}
}
